package org.dxy.domain.event.process;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 工序事件类型枚举
 * @author dxy
 * @createTime 2025/8/2
 */
@Getter
@AllArgsConstructor
public enum ProcessEventTypeEnum {
    /** 工序创建 */
    CREATED("created", "工序创建"),
    
    /** 工序分配 */
    ASSIGNED("assigned", "工序分配"),
    
    /** 工序开始 */
    STARTED("started", "工序开始"),
    
    /** 工序完成 */
    COMPLETED("completed", "工序完成"),
    
    /** 工序失败 */
    FAILED("failed", "工序失败"),
    
    /** 工序暂停 */
    PAUSED("paused", "工序暂停"),
    
    /** 工序恢复 */
    RESUMED("resumed", "工序恢复"),
    
    /** 工序挂起 */
    HOLD("hold", "工序挂起"),
    
    /** 工序解除挂起 */
    RELEASED("released", "工序解除挂起"),
    
    /** 工序返工 */
    REWORKED("reworked", "工序返工"),
    
    /** 工序报废 */
    SCRAPPED("scrapped", "工序报废"),
    
    /** 工序质量检测 */
    QUALITY_CHECKED("qualityChecked", "工序质量检测"),
    
    /** 工序测量参数记录 */
    MEASUREMENT_RECORDED("measurementRecorded", "工序测量参数记录"),
    
    /** 工序步骤变更 */
    STEP_CHANGED("stepChanged", "工序步骤变更");

    private final String key;         // 用于标识事件类型的代码（小写）
    private final String description; // 事件类型的描述
}